"""
选择排序是一种简单直观的排序算法，无论什么数据进去都是 O(n²) 的时间复杂度。
所以用到它的时候，数据规模越小越好。唯一的好处可能就是不占用额外的内存空间了吧。
步骤：
    首先在未排序序列中找到最小（大）元素，存放到排序序列的起始位置。

    再从剩余未排序元素中继续寻找最小（大）元素，然后放到已排序序列的末尾。

    重复第二步，直到所有元素均排序完毕。
"""


def selection_sort(wait_sort_list: list) -> list:
    for i in range(len(wait_sort_list) - 1):
        min_index = i
        for j in range(i + 1, len(wait_sort_list)):
            if wait_sort_list[j] < wait_sort_list[min_index]:
                min_index = j
        if min_index != i:
            wait_sort_list[i], wait_sort_list[min_index] = wait_sort_list[min_index], wait_sort_list[i]
    return wait_sort_list


if __name__ == '__main__':
    print(selection_sort([54, 1, 78, 2, 6, 32]))
